Conventionally, generation of a gait (desired gait) for causing a legged mobile robot, for example, a two-legged mobile robot to move has primarily been aimed to generate a gait (walking gait) which causes the robot to perform a smooth walking action. However, in recent years, as the development of the legged mobile robot has been advanced, it is desired to generate a gait that can cause the robot not only to walk but also run.
Note that, since the word “gait” in Chinese characters includes a Chinese character meaning “walk”, the word tends to be misunderstood as meaning only walking. However, originally, the word “gait” has a concept that also includes “running” as evidenced by the fact that it is used as a word for “trotting” or a running mode of a horse.
Now, differences in characteristics between walking and running will be described.
Typically, running is defined as a movement mode which includes an instant at which all the legs float in the air. However, this definition cannot always definitely distinguish between walking and running. For example, during fast jogging, most people have all their legs floating in the air at a certain instant. On the other hand, during slow jogging, many people have either of their legs always in contact with the ground. Defining the fast jogging as running and the slow jogging as walking seems to be slightly unreasonable.
FIG. 46 shows patterns of a body vertical position and a floor reaction force's vertical component (i.e., the sum of the floor reaction force's vertical components applied to the right and left legs) during typical running. FIG. 47 shows patterns of the body vertical position and the floor reaction force's vertical component during typical walking.
Here, the term “body vertical position/velocity” means the vertical position and velocity of a representative point of the body. The term “body horizontal position/velocity” means the horizontal position and velocity of the representative point of the body. The body vertical position/velocity and the body horizontal position/velocity are collectively referred to as a body position/velocity.
In addition, a “floor reaction force's vertical component” should be more precisely described as a “vertical component of the translation floor reaction force” in order to distinguish it from a moment component around a vertical axis of a floor reaction force. However, since the word is lengthy, “translation” is omitted here.
First, as for the movement of the body, when a robot walks, the body reaches the highest point at an instant when the body passes over the supporting leg. On the other hand, the body reaches the lowest point at that instant when the robot runs. That is, walking and running have inverse phases of the vertical movement pattern.
On the other hand, the floor reaction force is relatively constant during walking, while, during running, it largely varies and reaches the highest value at the instant when the body passes over the supporting leg. Of course, the floor reaction force is 0 at the instant when all the legs float in the air. From a more detailed observation, the floor reaction force produced during running is found to be approximately proportional to the extent of folding of the supporting leg. In other words, during running, the robot moves by jumping using the legs just like springs.
During slow jogging, the body vertical movement has the same phase as that of the typical running. In addition, in many cases, slow jogging doesn't include an instant when all the legs float in the air. Nevertheless, the floor reaction force is not completely but approximately 0 at an instant of switching of the supporting leg (free leg).
Therefore, as described above, it seems reasonable and appropriate that walking and running are distinguished from one another based on the characteristics of the patterns of the body vertical movement and floor reaction force so that slow jogging is also included in running.
In particular, distinguishing between running and walking in a most characteristic manner, it can be said that running is a movement mode in which the floor reaction force is 0 or substantially 0 at an instant of switching of the supporting leg, and walking is the other movement modes (in which the floor reaction force's vertical component is relatively constant).
In Japanese Patent Application No. 2000-352011, the applicants have already proposed a technique for generating a legged mobile robot's gait involving a floor reaction force in a flexible manner in real time while substantially satisfying a dynamical equilibrium condition (the dynamical equilibrium condition is a balance condition among the gravity, inertial force and floor reaction force for a desired gait. In a narrow sense, the condition is that the moment applied about the desired ZMP by the resultant force of gravity and the inertial force caused by the movement of the desired gait is 0. Details thereof will be described later). This technique and a series of control devices for legged mobile robots proposed by the applicants in Japanese Patent Laid-Open Nos. 10-86081 and 10-277969 and the like can be applied not only walking but also running.
However, according to these techniques, the body height (referred to as a body vertical position hereinafter) is determined in a geometrical manner based on the relative positional relationship between the body height and a foot, using the body height determination method previously proposed in Japanese Patent Laid-open No. 10-86080 by the applicants. Furthermore, the desired floor reaction force's vertical component is not set in an explicit manner but determined as a result of (depending on) the body vertical position (body height) determined in a geometrical manner as described above. Therefore, a desired floor reaction force's vertical component cannot always be produced. Thus, during running of the robot in which an instant when the floor reaction force's vertical component is 0 or substantially 0 has to be intentionally provided, the floor reaction force's vertical component produced as a result of a movement of the robot according to a desired gait may not be adequately reduced at the instant when the floor reaction force's vertical component should be 0 or substantially 0. If such a case occurs, the instant when the both feet of the robot float in the air or when only one of the feet is slightly in contact with the floor cannot be provided, so that it is difficult to make the robot run smoothly. That is, the conventional techniques are not the optimum control techniques, because the floor reaction force's vertical component pattern of the gait generated by the techniques is not always suitable for running.
In addition, in the case of a robot capable of running, it is desired that the robot can not only run smoothly but also walk smoothly and shifting between the walking gait and the running gait can be achieved smoothly. However, with the conventional techniques, a desired floor reaction force's vertical component suitable for running cannot always be generated, as described above. Thus, there is a possibility that shifting between the running gait and the walking gait cannot be achieved smoothly.
Therefore, an object of the present invention is to provide a gait generation device that can generate a desired gait for a robot which allows the robot to move smoothly regardless of the gait mode, such as a walking gait and a running gait, and allows the robot to smoothly shift between two different gait modes.